package com.zhl.Demo;

import java.util.Random;
import java.util.Scanner;

public class Test3 {
    public static void main(String[] args) {
        /*
        随机排名
        有五名人员进行汇报演讲，现采取随机排名的方式进行汇报。请依次录入五名员工的工号，然后展示一组随机的排名。
            36 、27 、 18 、 45 、 32
            思路：遍历索引，每遍历一个，然后随机生成一个位置的索引与当前遍历的索引交换顺序，达到随机的效果。
         */
        //1.定义一个动态初始化数组用于存储工号。
        int[] arr = new int[5];
        Scanner sc = new Scanner(System.in);
        //2.输入五名员工的工号
        for(int i=0;i<arr.length;i++){
            System.out.println("请输入第"+(i+1)+"名员工的工号：");
            int code = sc.nextInt();
            arr[i] = code;
        }
        //3.遍历索引，每遍历一个，然后随机生成一个位置的索引与当前遍历的索引交换顺序，达到随机的效果。
        Random r = new Random();
        for(int i=0;i<arr.length;i++){
            int j = r.nextInt(arr.length); // 生成一个随机位置的索引
            //交换
            int temp = arr[i];  // 临时变量先记录当前遍历的元素
            arr[i] = arr[j];    // 当前遍历的元素与随机位置的元素交换
            arr[j] = temp;      // 随机位置的元素与临时变量交换
        }
        //4.展示随机的排名
        System.out.println("随机排名：");
        for(int i=0;i<arr.length;i++){
            System.out.println((i+1)+"名："+arr[i]);
        }
    }
}
